Intelligent gripper with individual cup control

ABSTRACT

Systems and methods related to intelligent grippers with individual cup control are disclosed. One aspect of the disclosure provides a method of determining grip quality between a robotic gripper and an object. The method comprises applying a vacuum to two or more cup assemblies of the robotic gripper in contact with the object, moving the object with the robotic gripper after applying the vacuum to the two or more cup assemblies, and determining, using at least one pressure sensor associated with each of the two or more cup assemblies, a grip quality between the robotic gripper and the object.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. § 119(e) of U.S.provisional application Ser. No. 62/949,424, filed Dec. 17, 2019, andentitled “Intelligent Gripper with Individual Cup Control”, thedisclosure of which is incorporated by reference in its entirety.

BACKGROUND

A robot is generally defined as a reprogrammable and multifunctionalmanipulator designed to move material, parts, tools, or specializeddevices through variable programmed motions for a performance of tasks.Robots may be manipulators that are physically anchored (e.g.,industrial robotic arms), mobile robots that move throughout anenvironment (e.g., using legs, wheels, or traction-based mechanisms), orsome combination of a manipulator and a mobile robot. Robots areutilized in a variety of industries including, for example,manufacturing, transportation, hazardous environments, exploration, andhealthcare.

SUMMARY

One aspect of the disclosure provides a method of determining gripquality between a robotic gripper and an object. The method comprisesapplying a vacuum to two or more cup assemblies of the robotic gripperin contact with the object, moving the object with the robotic gripperafter applying the vacuum to the two or more cup assemblies, anddetermining, using at least one pressure sensor associated with each ofthe two or more cup assemblies, a grip quality between the roboticgripper and the object.

In another aspect, the method further comprises measuring an aggregatewrench on the robotic gripper while moving the object.

In another aspect, the method further comprises selecting based, atleast in part, on the measured aggregate wrench, an acceleration for therobotic gripper.

In another aspect, the method further comprises selecting based, atleast in part, on the determined grip quality, an acceleration for therobotic gripper.

In another aspect, the method further comprises selecting based, atleast in part, on the measured aggregate wrench and the determined gripquality, an acceleration for the robotic gripper.

In another aspect, selecting the acceleration for the robotic gripperincludes selecting the acceleration for the robotic gripper based, atleast in part, on a comparison of the determined grip quality and themeasured aggregate wrench.

In another aspect, selecting the acceleration for the robotic grippercomprises increasing the acceleration for the robotic gripper when aratio of the determined grip quality to the measured aggregate wrench isabove a threshold.

In another aspect, selecting the acceleration for the robotic grippercomprises decreasing the acceleration of the robotic gripper when aratio of the determined grip quality to the measured aggregate wrench isbelow a threshold.

In another aspect, measuring an aggregate wrench on the robotic gripperwhile moving the object comprises measuring an aggregate wrench on therobotic gripper while moving the object with a constant acceleration.

In another aspect, the method further comprises continuously varying anacceleration of the robotic gripper based, at least in part, on the gripquality between the robotic gripper and the object.

In another aspect, measuring an aggregate wrench on the robotic grippercomprises measuring the aggregate wrench using a sensor coupled to therobotic gripper, wherein the sensor comprises one or more selected fromthe group of a force sensor, a torque sensor, and a force/torque sensor.

In another aspect, the robotic gripper further comprises at least oneprocessor, and determining the grip quality between the robotic gripperand the object is performed by the at least one processor.

In another aspect, the method further comprises determining that the twoor more cup assemblies are within a threshold distance from the object,and applying the vacuum to the two or more cup assemblies when it isdetermined that the two or more cup assemblies are within the thresholddistance.

In another aspect, determining that the two or more cup assemblies arewithin a threshold distance from the object comprises determining thatthe two or more cup assemblies are in contact with the object.

In another aspect, the robotic gripper comprises a distance sensor, anddetermining that the two or more cup assemblies are within a thresholddistance from the object is based, at least in part, on an output of thedistance sensor.

In another aspect, the distance sensor is a time-of-flight sensor.

In another aspect, moving the object includes lifting the object.

One aspect of the disclosure provides a robotic gripper. The roboticgripper comprises a plurality of individually controllable vacuumassemblies. Each of the vacuum assemblies comprises a vacuum valveconfigured to couple to a cup assembly.

In another aspect, each of the vacuum assemblies further comprises acontrol valve coupled to the vacuum valve and configured to actuate thevacuum valve.

In another aspect, each of the plurality of individually controllablevacuum assemblies further comprises a pressure sensor configured tosense a pressure level in the cup assembly.

In another aspect, the robotic gripper further comprises a controllerconfigured to adjust an amount of vacuum supplied to one or more of theplurality of cup assemblies based, at least in part, on the sensedpressure levels in the plurality of cup assemblies

In another aspect, the robotic gripper further comprises a vacuum sourcecoupled to respective control valves of the plurality of individuallycontrollable vacuum assemblies.

In another aspect, the respective vacuum valves of the plurality ofindividually controllable vacuum assemblies are poppet valves.

In another aspect, the respective control valves of the plurality ofindividually controllable vacuum assemblies are solenoid valves.

In another aspect, the robotic gripper further comprises a manifoldcoupled to each of the plurality of individually controllable vacuumassemblies.

In another aspect, the plurality of individually controllable vacuumassemblies are arranged in a configuration having a plurality of spatialzones, wherein each of the plurality of spatial zones includes at leasttwo vacuum assemblies. The at least one controller is configured tocontrol the control valves for respective vacuum assemblies in one ormore of the spatial zones to simultaneously actuate respective vacuumvalves.

In another aspect, the at least two vacuum assemblies in at least one ofthe plurality of spatial zones is associated with cup assemblies havingdifferent sizes.

In another aspect, at least two of the cup assemblies have differentsizes.

One aspect of the disclosure provides a method of adjusting vacuum in arobotic gripper coupled to a gripped object, wherein the robotic gripperincludes a plurality of vacuum-based cup assemblies. The methodcomprises determining a pressure level at a first point in time for atleast some of the plurality of cup assemblies, adjusting an amount ofvacuum supplied to one or more of the plurality of cup assemblies based,at least in part, on the determined pressure levels, and determining thepressure level at a second point in time after the first point in timefor the at least some of the cup assemblies.

In another aspect, adjusting an amount of vacuum supplied to the one ormore of the plurality of cup assemblies includes controlling a controlvalve coupled to a vacuum valve of each of the one or more of theplurality of cup assemblies to actuate the vacuum valve.

In another aspect determining the pressure level includes determiningthe pressure level using a corresponding pressure sensor associated witheach of the at least some of the plurality of cup assemblies.

In another aspect, adjusting the amount of vacuum to the one or more ofthe plurality of cup assemblies based, at least in part, on thedetermined pressure levels includes adjusting the amount of vacuumsupplied to the one or more of the plurality of cup assemblies based, atleast in part, on whether the determined pressure levels are below athreshold value.

In another aspect, adjusting the amount of vacuum supplied to the one ormore of the plurality of cup assemblies includes closing one or morevalves associated with the one or more of the plurality of cupassemblies.

In another aspect, adjusting the amount of vacuum supplied to the one ormore of the plurality of cup assemblies includes adjusting an amount ofvacuum supplied to each of the one or more of the plurality of cupassemblies.

One aspect of the disclosure provides a method of selectively activatingcup assemblies of a robotic gripper. The method comprises applying apulse to the cup assemblies, determining a pulse response of each of thecup assemblies, and selectively activating one or more of the cupassemblies based, at least in part, on the determined pulse responses.

In another aspect, the method further comprises normalizing the pulseresponse of each of the cup assemblies.

In another aspect, determining the pulse response of each of the cupassemblies includes detecting a rate of change of a pressure signal ofeach of the cup assemblies.

In another aspect, determining the pulse response of each of the cupassemblies includes detecting a peak of a pressure signal of each of thecup assemblies.

In another aspect, selectively activating one or more of the cupassemblies based, at least in part, on the determined pulse responsesincludes selectively activating one or more of the cup assemblies based,at least in pail, on a pulse response threshold.

In another aspect, selectively activating one or more of the cupassemblies based, at least in part, on the determined pulse responsesincludes sequentially activating cup assemblies until a target pressuredrop is detected.

In another aspect, applying a pulse to the cup assemblies includessimultaneously activating the cup assemblies for a fixed time period.

it should be appreciated that all combinations of the foregoing conceptsand additional concepts discussed in greater detail below (provided suchconcepts are not mutually inconsistent) are contemplated as being partof the inventive subject matter disclosed herein.

DESCRIPTION OF DRAWINGS

FIG. 1A is a perspective view of an example of a robot moving a boxwithin an environment.

FIG. 1B is a perspective view of an example of the robot.

FIG. 1C is a schematic view of an example arrangement of system of arobot of FIG. 1B.

FIG. 2A illustrates a perspective view of an example of a roboticgripper.

FIG. 2B illustrates a side view of an example of a robotic gripper.

FIG. 2C illustrates a bottom view of an example of a robotic gripper.

FIG. 2D illustrates a bottom view of another example of a roboticgripper.

FIG. 3 illustrates an example of an individually controllable vacuumassembly.

FIG. 4 illustrates an enlarged portion of the vacuum assembly of FIG. 3.

FIG. 5 illustrates an example of a process for adjusting an amount ofvacuum supplied to individual cup assemblies in a robotic gripper.

FIG. 6 illustrates an example of a process for determining a gripquality between a vacuum-based gripper and an object.

FIG. 7A illustrates a top schematic view of an example of a roboticgripper and an object.

FIG. 7B illustrates a top schematic view of an example of a roboticgripper and a plurality of objects.

FIG. 7C illustrates a top schematic view of an example of a roboticgripper and an object and a corresponding plot of pressure values.

FIG. 7D is an annotated version of the plot of pressure values of FIG.7C.

FIG. 8 illustrates an example of a process for determining whichindividual cup assemblies in a robotic gripper to activate.

DETAILED DESCRIPTION

Robots are typically configured to perform various tasks in anenvironment in which they are placed. Generally, these tasks includeinteracting with objects and/or the elements of the environment. Toaccomplish such tasks, some robots include one or more arms withend-effectors (e.g., a gripper) controlled to interact with objects inthe environment. For instance, a gripper end-effector of a robot may becontrolled to pick up objects (e.g., boxes) and arrange the picked upobjects on a pallet for shipping, or alternatively, remove objects froma pallet for distribution as part of a logistics application.End-effectors may include multiple vacuum assemblies that attach to anobject by applying a suction force through a suction cup. Typically, theindividual vacuum assemblies are not individually addressable. Often,control valves are too large to be associated with individual vacuumassemblies. As such, each control valve may be associated with multiplecup assemblies, resulting in relatively large zones of the end-effectorthat may be turned on or off to tailor the performance of the gripper toa given application.

The inventors have recognized and appreciated that individuallyaddressable vacuum assemblies may increase control and generally enhancethe grasping capabilities of a robotic end-effector. Instead ofcontrolling all vacuum assemblies of a robotic gripper at once, or evencontrolling discrete zones of vacuum assemblies, the ability to specifythe performance of each vacuum assembly individually may enable improvedgrasping abilities. Additionally, the inventors have recognized andappreciated the benefits of being able to determine the quality of agrip that a robotic gripper exerts on a grasped object. Informationabout the grip quality may inform characteristics of path planning forthe robotic gripper, such as end effector pose and/or acceleration. Forexample, if a grip quality between a robotic gripper and an object isdetermined to be high, the gripper may be able to accelerate morequickly and execute more dynamic maneuvers compared to a scenario inwhich a grip quality is determined to be low.

Example Robotic System

FIG. 1A depicts an example of a robot 100, within which generallyincludes a body 110, at least one leg 120 (e.g., shown as two legs 120,120 a-b), drive wheels 130 coupled to each leg 120, and an arm 150 withan end-effector 160. Although shown with wheels, it should beappreciated that a robot with a stationary base (e.g., without wheels)may also be used. The robot 100 is within an environment 10 thatincludes a plurality of boxes 20, 20 a-n 25 stacked on a pallet 30.Here, using the end-effector 160, the robot 100 is moving a box 20 afrom a pallet 30. The end-effector 160 may be, for example, a gripper,and may include a force sensor, a torque sensor, or a force/torquesensor configured to measure the force and/or torque exerted on therobot by a load (e.g., box 20 a) being moved by the gripper. In someembodiments, the end-effector 160 may be a vacuum-based gripper.

FIG. 1B is an example of a robot 100 operating within the environment 10that includes at least one box 20. Here, the environment 10 includes aplurality of boxes 20, 20 a-n stacked on a pallet 30 lying on a groundsurface 12. The robot 100 may move (e.g., drive) across the groundsurface 12 to detect and/or to manipulate boxes 20 within theenvironment 10. For example, the pallet 30 may correspond to a deliverytruck that the robot 100 loads or unloads. Here, the robot 100 may be alogistics robot associated with a shipping and/or receiving stage oflogistics. As a logistics robot, the robot 100 may palletize or detectboxes 20 for logistics fulfillment or inventory management. Forinstance, the robot 100 detects a box 20, processes the box 20 forincoming or outgoing inventory, and moves the box 20 about theenvironment 10.

The robot 100 has a vertical gravitational axis Vg along a direction ofgravity, and a center of mass (COM), which is a point where the robot100 has a zero sum distribution of mass. The robot 100 further has apose P based on the COM relative to the vertical gravitational axisV_(g) to define a particular attitude or stance assumed by the robot100. The attitude of the robot 100 can be defined by an orientation oran angular position of an object in space.

The robot 100 generally includes a body 110 and one or more legs 120.The body 110 of the robot 100 may be a unitary structure or a morecomplex design depending on the tasks to be performed in the environment10. The body 110 may allow the robot 100 to balance, to sense about theenvironment 10, to power the robot 100, to assist with tasks within theenvironment 10, or to support other components of the robot 100. In someexamples, the robot 100 includes a two-part body 110. For example, therobot 100 includes an inverted pendulum body (IPB) 110, 110 a (i.e.,referred to as a torso 110 a of the robot 100) and a counter-balancebody (CBB) 110, 110 b (i.e., referred to as a tail 110 b of the robot100) disposed on the IPB 110 a.

The body 110 (e.g., the IPB 110 a or the CBB 110 b) has first endportion 112 and a second end portion 114. For instance, the IPB 110 ahas a first end portion 112 a and a second end portion 114 a while theCBB 110 b has a first end portion 112 b and a second end portion 114 b.In some implementations, the CBB 110 b is disposed on the second endportion 114 a of the IPB 110 a and configured to move relative to theIPB 110 a. In some examples, the CBB 110 b includes a battery thatserves to power the robot 100. A back joint J_(B) may rotatably couplethe CBB 110 b to the second end portion 114 a of the IPB 110 a to allowthe CBB 110 b to rotate relative to the IPB 110 a. The back joint J_(B)may be referred to as a pitch joint. In the example shown, the backjoint J_(B) supports the CBB 110 b to allow the CBB 110 b to move/pitcharound a lateral axis (y-axis) that extends perpendicular to thegravitational vertical axis V_(g) and a fore-aft axis (x-axis) of therobot 100. The fore-aft axis (x-axis) may denote a present direction oftravel by the robot 100. Movement by the CBB 110 b relative to the IPB110 a alters the pose P of the robot 100 by moving the COM of the robot100 relative to the vertical gravitational axis V_(g). A rotationalactuator or back joint actuator A, A_(B) (e.g., a tail actuator orcounterbalance body actuator) may be positioned at or near the backjoint J_(B) for controlling movement by the CBB 110 b (e.g., tail) aboutthe lateral axis (y-axis). The rotational actuator As may include anelectric motor, electro-hydraulic servo, piezo-electric actuator,solenoid actuator, pneumatic actuator, or other actuator technologysuitable for accurately effecting movement of the CBB 110 b relative tothe IPB 110 a.

The rotational movement by the CBB 110 b relative to the IPB 110 aalters the pose P of the robot 100 for balancing and maintaining therobot 100 in an upright position. For instance, similar to rotation by aflywheel in a conventional inverted pendulum flywheel, rotation by theCBB 110 b relative to the gravitational vertical axis V_(g)generates/imparts the moment at the back joint J_(B) to alter the pose Pof the robot 100. By moving the CBB 110 b relative to the IPB 110 a toalter the pose P of the robot 100, the COM of the robot 100 movesrelative to the gravitational vertical axis V_(g) to balance andmaintain the robot 100 in the upright position in scenarios when therobot 100 is moving and/or carrying a load. However, by contrast to theflywheel portion in the conventional inverted pendulum flywheel that hasa mass centered at the moment point, the CBB 110 b includes acorresponding mass that is offset from moment imparted at the back jointJ_(B) some configurations, a gyroscope disposed at the back joint J_(B)could be used in lieu of the CBB 110 b to spin and impart the moment(rotational force) for balancing and maintaining the robot 100 in theupright position.

CBB 110 b may rotate (e.g., pitch) about the back joint J_(B) in boththe clockwise and counter-clockwise directions (e.g., about the y-axisin the “pitch direction”) to create an oscillating (e.g., wagging)movement. Movement by the CBB 110 b relative to IPB 110 a betweenpositions causes the COM of the robot 100 to shift (e.g., lower towardthe ground surface 12 or higher away from the ground surface 12). TheCBB 110 b may oscillate between movements to create the waggingmovement. The rotational velocity of the CBB 110 b when moving relativeto the IPB 110 a may be constant or changing (accelerating ordecelerating) depending upon how quickly the pose P of the robot 100needs to be altered for dynamically balancing the robot 100.

The legs 120 are locomotion-based structures (e.g., legs and/or wheels)that are configured to move the robot 100 about the environment 10. Therobot 100 may have any number of legs 120 (e.g., a quadruped with fourlegs, a biped with two legs, a hexapod with six legs, an arachnid-likerobot with eight legs, no legs for a robot with a stationary base,etc.). Here, for simplicity, the robot 100 is generally shown anddescribed with two legs 120, 120 a-b.

As a two-legged robot 100, the robot includes a first leg 120, 120 a anda second leg 120, 120 b. In some examples, each leg 120 includes a firstend 122 and a second end 124. The second end 124 corresponds to an endof the leg 120 that contacts or is adjacent to a member of the robot 100contacting a surface (e.g., a ground surface) such that the robot 100may traverse the environment 10. For example, the second end 124corresponds to a foot of the robot 100 that moves according to a gaitpattern. In some implementations, the robot 100 moves according torolling motion such that the robot 100 includes a drive wheel 130. Thedrive wheel 130 may be in addition to or instead of a foot-like memberof the robot 100. For example, the robot 100 is capable of movingaccording to ambulatory motion and/or rolling motion. Here, the robot100 depicted in FIG. 1B illustrates the first end 122 coupled to thebody 110 (e.g., at the IPB 110 a) while the second end 124 is coupled tothe drive wheel 130. By coupling the drive wheel 130 to the second end124 of the leg 120, the drive wheel 130 may rotate about an axis of thecoupling to move the robot 100 about the environment 10.

Hip joints J_(H) on each side of body 110 (e.g., a first hip jointJ_(H), J_(Ha) and a second hip joint J_(H), J_(Hb) symmetrical about asagittal plane P_(S) of the robot 100) may rotatably couple the firstend 122 of a leg 120 to the second end portion 114 of the body 110 toallow at least a portion of the leg 120 to move/pitch around the lateralaxis (y-axis) relative to the body 110. For instance, the first end 122of the leg 120 (e.g., of the first leg 120 a or the second leg 120 b)couples to the second end portion 114 a of the IPB 110 a at the hipjoint J_(H) to allow at least a portion of the leg 120 to move/pitcharound the lateral axis (y-axis) relative to the IPB 110 a.

A leg actuator A, A_(L) may be associated with each hip joint J_(H)(e.g., a first leg actuator A_(L), A_(La) and a second leg actuatorA_(L), A_(Lb))). The leg actuator A_(L) associated with the hip jointJ_(H) may cause an upper portion 126 of the leg 120 (e.g., the first leg120 a or the second leg 120 b) to move/pitch around the lateral axis(y-axis) relative to the body 110 (e.g., the IPB 110 a). In someconfigurations, each leg 120 includes the corresponding upper portion126 and a corresponding lower portion 128. The upper portion 126 mayextend from the hip joint J_(H) at the first end 122 to a correspondingknee joint J_(K) and the lower portion 128 may extend from the kneejoint J_(K) to the second end 124. A knee actuator A, A_(K) associatedwith the knee joint J_(K) may cause the lower portion 128 of the leg 120to move/pitch about the lateral axis (y-axis) relative to the upperportion 126 of the leg 120.

Each leg 120 may include a corresponding ankle joint J_(A) configured torotatably couple the drive wheel 130 to the second end 124 of the leg120. For example, the first leg 120 a includes a first ankle jointJ_(A), J_(Aa) and the second leg 120 b includes a second ankle jointJ_(A), J_(Ab). Here, the ankle joint J_(A) may be associated with awheel axle coupled for common rotation with the drive wheel 130 andextending substantially parallel to the lateral axis (y-axis). The drivewheel 130 may include a corresponding torque actuator (drive motor) A,A_(T) configured to apply a corresponding axle torque for rotating thedrive wheel 130 about the ankle joint J_(A) to move the drive wheel 130across the ground surface 12 along the fore-aft axis (x--axis). Forinstance, the axle torque may cause the drive wheel 130 to rotate in afirst direction for moving the robot 100 in a forward direction alongthe fore-aft axis (x-axis) and/or cause the drive wheel 130 to rotate inan opposite second direction for moving the robot 100 in a rearwarddirection along the fore-aft axis (x-axis).

In some implementations, the legs 120 are prismatically coupled to thebody 110 (e.g., the IPB 110 a) such that a length of each leg 120 mayexpand and retract via a corresponding actuator (e.g., leg actuatorsA_(L)) proximate the hip joint J_(H), a pair of pulleys (not shown)disclosed proximate the hip joint J_(H) and the knee joint J_(K) and atiming belt (not shown) synchronizing rotation of the pulleys. Each legactuator A_(L) may include a linear actuator or a rotational actuator.Here, a control system 140 with a controller 142 (e.g., shown in FIG.1C) may actuate the actuator associated with each leg 120 to rotate thecorresponding upper portion 126 relative to the body 110 (e.g., the IPB110 a) in one of a clockwise direction or a counter-clockwise directionto prismatically extend/expand the length of the leg 120 by causing thecorresponding lower portion 128 to rotate about the corresponding kneejoint J_(K) relative to the upper portion 126 in the other one of theclockwise direction or the counter-clockwise direction. Optionally,instead of a two-link leg, the at least one leg 120 may include a singlelink that prismatically extends/retracts linearly such that the secondend 124 of the leg 120 prismatically moves away/toward the body 110(e.g., the IPB 110 a) along a linear rail. In other configurations, theknee joint J_(K) may employ a corresponding a rotational actuator as theknee actuator A_(K) for rotating the lower portion 128 relative to theupper portion 126 in lieu of a pair of synchronized pulleys.

The corresponding axle torques applied to each of the drive wheels 130(e.g., a first drive wheel 130, 130 a associated with the first leg 120a and a second drive wheel 130, 130 b associated with the second leg 120b) may vary to maneuver the robot 100 across the ground surface 12. Forinstance, an axle torque (i.e., a wheel torque τW) applied to the firstdrive wheel 130 a that is greater than a wheel torque τW applied to thesecond drive wheel 130 b may cause the robot 100 to turn to the left,while applying a greater wheel torque τW to the second drive wheel 130 bthan to the first drive wheel 130 may cause the robot 100 to turn to theright. Similarly, applying substantially the same magnitude of wheeltorque τW to each of the drive wheels 130 may cause the robot 100 tomove substantially straight across the ground surface 12 in either theforward or reverse directions. The magnitude of axle torque T_(A)applied to each of the drive wheels 130 also controls velocity of therobot 100 along the fore-aft axis (x-axis). Optionally, the drive wheels130 may rotate in opposite directions to allow the robot 100 to changeorientation by swiveling on the ground surface 12. Thus, each wheeltorque τW may be applied to the corresponding drive wheel 130independent of the axle torque (if any) applied to the other drive wheel130.

In some examples, the body 110 (e.g., at the CBB 110 b) also includes atleast one non-drive wheel (not shown). The non-drive wheel is generallypassive (e.g., a passive caster wheel) and does not contact the groundsurface 12 unless the body 110 moves to a pose P where the body 110(e.g., the CBB 110 b) is supported by the ground surface 12.

In some implementations, the robot 100 further includes one or moreappendages, such as an articulated arm 150 (also referred to as an armor a manipulator arm) disposed on the body 110 (e.g., on the IPB 110 a)and configured to move relative to the body 110. The articulated arm 150may have one or more degrees of freedom (e.g., ranging from relativelyfixed to capable of performing a wide array of tasks in the environment10). Here, the articulated arm 150 illustrated in FIG. 1B hasfive-degrees of freedom. While FIG. 1B shows the articulated arm 150disposed on the first end portion 112 of the body 110 (e.g., at the IPB110 a), the articulated arm 150 may be disposed on any part of the body110 in other configurations. For instance, the articulated arm 150 isdisposed on the CBB 110 b or on the second end portion 114 a of the IPB110 a.

The articulated arm 150 extends between a proximal first end 152 and adistal second end 154. The arm 150 may include one or more arm jointsJ_(A) between the first end 152 and the second end 154 where each armjoint J_(A) is configured to enable the arm 150 to articulate in theenvironment 10. These arm joints J_(A) may either couple an arm member156 of the arm 150 to the body 110 or couple two or more arm members 156together. For example, the first end 152 connects to the body 110 (e.g.,the IPB 110 a) at a first articulated arm joint J_(A), J_(A1) (e.g.,resembling a shoulder joint). In some configurations, the firstarticulated arm joint J_(A), J_(A1) is disposed between the hip jointsJ_(H) (e.g., aligned along the sagittal plane P_(S) of the robot 100 atthe center of the body 110). In some examples, the first articulated armjoint J_(A), J_(A1) rotatably couples the proximal first end 152 of thearm 150 to the body 110 (e.g., the IPB 110 a) to enable the arm 150 torotate relative to the body 110 (e.g., the IPB 110 a). For instance, thearm 150 may move/pitch about the lateral axis (y-axis) relative to thebody 110.

In some implementations, such as FIG. 1B, the arm 150 includes a secondarm joint J_(A), J_(A2) (e.g., resembling an elbow joint) and a thirdarm joint J_(A), J_(A3) (e.g., resembling a wrist joint). The second armjoint J_(A), J_(A2) couples a first arm member 156 a to a second armmember 156 b such that these members 156 a-b are rotatable relative toone another and also to the body 110 (e.g., the IPB 110). Depending on alength of the arm 150, the second end 154 of the arm 150 coincides withan end of an arm member 156. For instance, although the arm 150 may haveany number of arm members 156, FIG. 1B depicts the arm 150 with two armmembers 156 a-b such that the end of the second arm member 156 bcoincides with the second end 154 of the arm 150. Here, at the secondend 154 of the arm 150, the arm 150 includes an end-effector 160 that isconfigured to perform tasks within the environment 10. The end-effector160 may be disposed on the second end 154 of the arm 150 at an arm jointJ_(A) (e.g., at the third arm joint J_(A), J_(A3)) to allow theend-effector 160 to have multiple degrees of freedom during operation.The end-effector 160 may include one or more end-effector actuators A,A_(EE) for gripping/grasping objects. For instance, the end-effector 160includes one or more suction cups as end-effector actuators A_(EE) tograsp or to grip objects by providing a vacuum seal between theend-effector 160 and a target object.

The articulated arm 150 may move/pitch about the lateral axis (y-axis)relative to the body 11.0 (e.g., the IPB 110 a). For instance, thearticulated arm 150 may rotate about the lateral axis (y-axis) relativeto the body 110 in the direction of gravity to lower the COM of therobot 100 while executing turning maneuvers. The CBB 110 b may alsosimultaneously rotate about the lateral axis (y-axis) relative to theIPB 110 in the direction of gravity to assist in lowering the COM of therobot 100. Here, the articulated arm 150 and the CBB 110 b may cancelout any shifting in the COM of the robot 100 in the forward or rearwarddirection along the fore-aft axis (x-axis), while still effectuating theCOM of the robot 100 to shift downward closer to the ground surface 12.

With reference to FIG. 1C, the robot 100 includes a control system 140configured to monitor and to control operation of the robot 100. In someimplementations, the robot 100 is configured to operate autonomouslyand/or semi-autonomously. However, a user may also operate the robot byproviding commands/directions to the robot 100. In the example shown,the control system 140 includes a controller 142 (e.g., data processinghardware) and memory hardware 144. The controller 142 may include itsown memory hardware or utilize the memory hardware 144 of the controlsystem 140. In some examples, the control system 140 (e.g., with thecontroller 142) is configured to communicate (e.g., command motion) withthe actuators A back actuator(s) A_(B), leg actuator(s) A_(L), kneeactuator(s) A_(K), drive belt actuator(s), rotational actuator(s),end-effector actuator(s) A_(EE), etc.) to enable the robot 100 to moveabout the environment 10. The control system 140 is not limited to thecomponents shown, and may include additional (e.g., a power source) orless components without departing from the scope of the presentdisclosure. The components may communicate by wireless or wiredconnections and may be distributed across multiple locations of therobot 100. In sonic configurations, the control system 140 interfaceswith a remote computing device and/or a user. For instance, the controlsystem 140 may include various components for communicating with therobot 100, such as a joystick, buttons, transmitters/receivers, wiredcommunication ports, and/or wireless communication ports for receivinginputs from the remote computing device and/or user, and providingfeedback to the remote computing device and/or user.

The controller 142 corresponds to data processing hardware that mayinclude one or more general purpose processors, digital signalprocessors, and/or application specific integrated circuits (ASICs). Insome implementations, the controller 142 is a purpose-built embeddeddevice configured to perform specific operations with one or moresubsystems of the robot 100. Additionally or alternatively, thecontroller 142 includes a software application programmed to executefunctions for systems for the robot 100 using the data processinghardware of the controller 142. The memory hardware 144 is incommunication with the controller 142 and may include one or morenon-transitory computer-readable storage media such as volatile and/ornon-volatile storage components. For instance, the memory hardware 144may be associated with one or more physical devices in communicationwith one another and may include optical, magnetic, organic, or othertypes of memory or storage. The memory hardware 144 is configured to,inter alia, store instructions (e.g., computer-readable programinstructions) that, when executed by the controller 142, cause thecontroller 142 to perform numerous operations, such as, withoutlimitation, altering the pose P of the robot 100 for maintainingbalance, maneuvering the robot 100, detecting objects, transportingobjects, and/or performing other tasks within the environment 10. Insome implementations, the controller 142 performs the operations basedon direct or indirect interactions with a sensor system 170.

The sensor system 170 includes one or more sensors 172, 172 a-n. Thesensors 172 may include vision/image sensors, inertial sensors (e.g., aninertial measurement unit (IMU)), and/or kinematic sensors. Someexamples of one or more sensors 172 include a camera such as a monocularcamera or a stereo camera, a time of flight (TOF) depth sensor, ascanning light-detection and ranging (LIDAR) sensor, or a scanninglaser-detection and ranging (LADAR) sensor. More generically, thesensor(s) 172 may include one or more of force sensors, torque sensors,velocity sensors, acceleration sensors, position sensors (linear and/orrotational position sensors), motion sensors, location sensors, loadsensors, temperature sensors, pressure sensors (e.g., for monitoring theend-effector actuator A_(EE)), touch sensors, depth sensors, ultrasonicrange sensors, infrared sensors, and/or object sensors. In someexamples, sensor(s) 172 have a corresponding field(s) of view defining asensing range or region corresponding to sensor(s) 172. Each sensor 172may be pivotable and/or rotatable such that the sensor 172 may, forexample, change the field of view about one or more axes (e.g., anx-axis, a y-axis, or a z-axis in relation to a ground surface 12). Insome implementations, the body 110 of the robot 100 includes a sensorsystem 170 with multiple sensors 172 about the body to gather sensordata 174 in all directions around the robot 100. Additionally oralternatively, sensor(s) 172 of the sensor system 170 may be mounted onthe arm 150 of the robot 100 (e.g., in conjunction with one or moresensors 172 mounted on the body 110). The robot 100 may include anynumber of sensors 172 as part of the sensor system 170 in order togenerate sensor data 174 for the environment 10 about the robot 100. Forinstance, when the robot 100 is maneuvering about the environment 10,the sensor system 170 gathers pose data for the robot 100 that includesinertial measurement data (e.g., measured by an IMU). In some examples,the pose data includes kinematic data and/or orientation data about therobot 100.

When surveying a field of view with a sensor 172, the sensor system 170generates sensor data 174 (also referred to as image data 174)corresponding to the field of view. Sensor data 174 gathered by thesensor system 170, such as the image data, pose data, inertial data,kinematic data, etc., relating to the environment 10 may be communicatedto the control system 140 (e.g., the controller 142 and/or memoryhardware 144) of the robot 100. In some examples, the sensor system 170gathers and stores the sensor data 174 (e.g., in the memory hardware 144or memory hardware related to remote resources communicating with therobot 100). In other examples, the sensor system 170 gathers the sensordata 174 in real-time and processes the sensor data 174 without storingraw (i.e., unprocessed) sensor data 174. In yet other examples, thecontroller system 140 and/or remote resources store both the processedsensor data 174 and raw sensor data 174. The sensor data 174 from thesensor(s) 172 may allow systems of the robot 100 to detect and/or toanalyze conditions about the robot 100. For instance, the sensor data174 may allow the control system 140 to maneuver the robot 100, alter apose P of the robot 100, and/or actuate various actuators A formoving/rotating mechanical components of the robot 100 (e.g., aboutjoints J of the robot 100).

Example Gripper

In some embodiments, the end-effector 160 may be a vacuum-based gripper,which may include multiple individually addressable vacuum assemblies asend effector actuators A_(EE). In other embodiments, an end effector 160may be a mechanical gripper, a jamming based gripper, or any othersuitable end effector, as the disclosure is not limited in this regard.

FIG. 2A illustrates a perspective view of an example of a roboticgripper 200. FIG. 2B illustrates a side view, and FIG. 2C illustrates abottom view. As shown, robotic gripper 200 is a vacuum-based gripperthat includes a plurality of vacuum assemblies 300 arranged in an arrayand/or coupled to a manifold. In some embodiments, the vacuum assemblies300 of robotic gripper 200 may be arranged in a rectilinear gridpattern, such as shown in FIG. 2A. However, it should be understood thatany suitable arrangement of vacuum assemblies may be used, as thedisclosure is not limited in this regard.

In some embodiments, the vacuum assemblies 300 of a robotic gripper 200may be uniform (e.g., have the same cross-sectional area, shape and/ormaterial), In other embodiments, a robotic gripper may include a varietyof different vacuum assemblies 300 (e.g., having differentcross-sectional areas, shapes, and/or materials). For example, FIG. 2Dillustrates a bottom view of another example of a robotic gripper thatincludes vacuum assemblies having different cross-sectional areas.Vacuum assemblies may be distinguished, in some embodiments, based oncharacteristics of the suction cups. For example, different vacuumassemblies may employ suction cups of different sizes or differentmaterials.

A robotic gripper 200 may include a manifold that couples the vacuumassemblies 300. In some embodiments, a manifold. may include a vacuumconnection 202 and a high-pressure pneumatic connection 204. The vacuumconnection may be configured to connect to a vacuum pump or any othersuitable source of vacuum. Similarly, the high-pressure pneumaticconnection may be configured to connect to a high-pressure pneumaticsource, such as an air compressor. The manifold may be configured todistribute the vacuum and high-pressure air from their respectivesources to each of the vacuum assemblies 300. In some embodiments, somevacuum assemblies may have a first type of suction cup, whereas othervacuum assemblies may have a second type of suction cup. For instance,suction cups may be distinguished based on size, shape, material, or anyother appropriate characteristic. Some robotic grippers may includevacuum. assemblies without any suction cups in order to accommodatelarger suction cups on neighboring vacuum assemblies. In someembodiments of a robotic gripper, different suction cups may be used indifferent spatial zones of the gripper, enabling zones that may bespecialized for a particular task, such as gripping a particularmaterial. In some embodiments, different types of suction cups may bedispersed throughout the robotic gripper. It should be appreciated thatdifferent types of suction cups, or any other component of a vacuumassembly, may be arranged in any configuration within a robotic gripper,as the disclosure is not limited in this regard.

In some embodiments, such as in embodiments in which the vacuumassemblies are individually addressable, a controller may be configuredto control the operation of vacuum assemblies within one or more zonesbased on any relevant parameter. In some embodiments, zones of vacuumassemblies may be actuated based on a position relative to the roboticgripper. For example, a robotic gripper may have four individuallyaddressable zones, corresponding to four quadrants of a rectilineararray. In some embodiments, zones of vacuum assemblies may be actuatedbased on suction cup type. For example, a robotic gripper may have twoindividually addressable zones, each corresponding to suction cups of aparticular size and/or material. The two types of suction cups may beevenly distributed throughout the robotic gripper, may be confined todesignated areas, or may be arranged in any other suitableconfiguration. Zones may be actuated in any desired order. Zones may beactuated sequentially, or simultaneously.

FIG. 3 illustrates one example of an individually controllable vacuumassembly 300. FIG. 4 illustrates a portion of the vacuum assembly 300 ofFIG. 3 in greater detail. A vacuum assembly 300 may include a vacuumvalve 302. configured to couple to a cup assembly 304. Cup assembly 304may include suction cup 305. In some embodiments, a vacuum valve 302 maybe coupled to a cup assembly 304 through a suction cup adaptor 310. Insome embodiments, a vacuum valve may be a poppet valve. For example, avacuum valve may be a piloted two stage poppet valve. However, othertypes of vacuum valves are contemplated, and the disclosure is notlimited in this regard. For example, in some embodiments, a vacuum valvemay be a direct drive valve.

In some embodiments, a control valve 308 may be coupled to the vacuumvalve 302 and may be configured to actuate the vacuum valve. Actuatingthe control valve 308 may open a connection between the cup assembly 304and a vacuum source 312 through the vacuum valve 302, enabling thesuction cup 305 to apply a suction force and attach to a surface. Thevacuum source 312 may be coupled to both the vacuum valve 302 and thecontrol valve 308. In some embodiments, control valve 308 may be asolenoid valve. For example, control valve 308 may be a 3-way solenoidvalve that, in one configuration, connects a high-pressure pneumaticinput 314 to an output of the valve that is coupled to a pilot 316 ofthe vacuum valve 302. Applying a high-pressure to the vacuum valve pilot316 may displace a plunger 318, establishing a connection between avacuum source 312 and a cup assembly 304. When high-pressure is removedfrom the vacuum valve pilot 316, a return spring 320 may return theplunger 318 to its former position, closing the connection between thevacuum source 312 and the cup assembly 304. Other types of controlvalves are contemplated, and the disclosure is not limited in thisregard. However, it should be appreciated that, in some embodiments, avacuum valve may not be coupled to a control valve. For example, adirect drive vacuum valve may be used in place of a piloted vacuumvalve.

In some embodiments, a vacuum assembly 300 may include a pressure sensor306, which may be configured to sense a pressure level in the cupassembly 304. The pressure sensor 306 may be used in a feedback controlmethod to selectively open or close a vacuum valve based, at least inpart, on the sensed pressure within the cup assembly 304. in someembodiments, one or more of the vacuum assemblies 300 may not include apressure sensor. In such embodiments, control valves may be configuredto activate based on a different input. For example, the control valvesmay be activated based on a timing schedule. However, other suitableinputs to activate a control valve are contemplated, and the disclosureis not limited in this regard.

In some embodiments, individual control of each of a plurality of vacuumassemblies in a robotic gripper may be provided. The method may includesensing a pressure level in a cup assembly coupled to a vacuum valve ofthe vacuum assembly, and controlling a control valve coupled to thevacuum valve to actuate the vacuum valve based, at least in part, on thesensed pressure level.

The inventors have recognized and appreciated that the strength of gripbetween a vacuum-based gripper and an object may be improved if cupassemblies that have a good seal between the suction cup and the objectare provided with more vacuum and cup assemblies that have a poor sealbetween the suction cup and the object are supplied with less (or no)vacuum.

FIG. 5 illustrates a process 500 for adjusting an amount of vacuumsupplied to individual cup assemblies based, at least in part, onpressure measurements within the cup assemblies. In some embodiments,feedback provided by continuous or periodic pressure measurements areused to adjust the amount of vacuum supplied to individually addressablecup assemblies to improve or optimize grip of an object.

Process 500 begins in act 510, where a pressure level is determined at afirst time for at least some cup assemblies of a plurality of cupassemblies within a robotic gripper. In some embodiments, the pressurelevel in a cup assembly is measured using a corresponding pressuresensor associated with the cup assembly. In other embodiments, a singlepressure sensor may be shared among multiple cup assemblies.

Process 500 then proceeds to act 512, where an amount of vacuum suppliedto one or more of the cup assemblies is adjusted based, at least inpart, on the determined pressure level. For example, if a determinedpressure level is below a threshold value and/or outside of a particularpressure range, it may be determined that the seal between the cupassembly and the object is poor and amount of vacuum supplied to thatcup assembly should be reduced. In some embodiments, determining whetherto supply vacuum to a particular cup assembly may be a binary decisionin that vacuum is either supplied or not, for instance, by closing avalve for the cup assembly. In other embodiments, the vacuum supplied toparticular cup assemblies can be reduced without completely turning offvacuum to the particular cup assemblies. It should be appreciated thatthe amount of vacuum supplied to particular cup assemblies may beadjusted either discretely or continuously, as the disclosure is notlimited in this regard.

Process 500 then proceeds to act 514, where the pressure level for atleast some of the cup assemblies is determined at a second time afterthe first time. Process 500 then proceeds to act 516 where it isdetermined whether to continue monitoring pressure in the cupassemblies. If it is determined in act 516 to continue monitoringpressure, process 500 returns to act 512, where the amount of vacuumsupplied to one or more of the cup assemblies is adjusted based, atleast in part, on the pressure level(s) determined at the second time inact 514. If it is determined. in act 516 that pressure should no longerbe monitored, process 500 ends.

In this way, pressure within individual cup assemblies of a roboticgripper can be determined when the robotic gripper first comes intocontact with an object and corresponding vacuum supplied to one or moreof the cup assemblies may be adjusted based on the sensed pressure toimprove a grip between the robotic gripper and the object. Additionally,the pressure can be continuously and/or periodically monitored as thegripper is in contact with the object and adjustments to the suppliedvacuum can be made to maintain an improved grip on the object, forinstance, as a robot on which the gripper is used moves the object fromone location to another location.

In some embodiments, a method of adjusting vacuum in a robotic grippercoupled to a gripped object may include first determining a pressurelevel for at least some of the cup assemblies. After the pressure levelis determined, the amount of vacuum supplied to the cup assemblies maybe adjusted based, at least in part, on the determined pressure level.After the amount of vacuum is adjusted, the pressure for at least someof the cup assemblies may again be determined. In this way, the methodmay be repeated in a cyclical manner. That is, the amount of vacuumsupplied to the cup assemblies may be controlled based on feedback frompressure readings of the cup assemblies.

In some embodiments, the amount of vacuum supplied to the cup assembliesmay he adjusted by modulating (e.g., opening or closing) a valveassociated with a cup assembly. The vacuum supplied to a cup assemblymay be controlled in a discrete manner, in which a given cup assembly iseither “on” or “off”, or in a continuous manner, in which the vacuumsupplied to a given cup assembly may be varied smoothly between apredetermined minimum value and a predetermined maximum value.

Any suitable stimulus or input may be used to trigger a controller toadjust the amount of vacuum supplied to a cup assembly. In someembodiments, the amount of vacuum may be adjusted based on the sensedpressure within a cup assembly. If the pressure with a cup assembly isdetermined to be outside of a specified range, the amount of vacuumsupplied to that cup assembly may be adjusted. For example, the pressureof each cup assembly of an array of cup assemblies in a robotic grippermay be monitored to determine when a particular cup assembly loses (orfails to establish) adequate suction on a grasped object. Any cupassembly determined to be poorly sealed (or not sealed) on the objectmay be shut off, thereby increasing the suction force from the other cupassemblies in the array, and improving the grasp on the object. Anamount of vacuum supplied to a cup assembly may be adjusted in anyappropriate manner, such as by opening or closing an associated valve.The vacuum supplied to a cup assembly may be adjusted if the pressurelevel for a particular cup assembly is determined to be either above orbelow a particular threshold value.

FIG. 6 illustrates a process 600 for determining a grip quality betweena vacuum-based gripper and an object in accordance with someembodiments. In act 610, vacuum is applied to two or more cup assembliesof a plurality of cup assemblies of a robotic gripper. Process 600 thenproceeds to act 612 where an object is moved by the robotic gripperafter the vacuum has been applied to the two or more cup assemblies. Itshould be appreciated that the vacuum--based gripper may be configuredto attach to any surface of the object to move the object. For instance,the vacuum-based gripper may be configured to attach to a top surface ofthe object or a side surface of the object to move the object. Thesurface of the object on which the gripper may be configured to attachmay be determined based, at least in part, on a location and/ororientation of the object, movement constraints of the robot to whichthe gripper is attached, and/or environmental information within whichthe object is placed. For instance, objects on the top of a stack ofobjects may be gripped on a side surface for removal from the stackwhereas objects lower in the stack may be gripped on a top surface. Insome embodiments, moving an object may include lifting an object. Insome embodiments the amount and/or configuration of vacuum applied tothe cup assemblies of the robotic gripper may depend, at least in part,on the surface of the object on which the gripper is attached. Process600 then proceeds to act 614 where a grip quality between the roboticgripper and the moved object is determined. In some embodiments, gripquality is determined based, at least in part, on a measurement from atleast one pressure sensor associated with each of the two or more cupassemblies to which vacuum is applied. Process 600 then proceeds to act616 where an aggregate wrench on the gripper as applied by the grippedobject while moved is determined. As used herein, the term “wrench” isto be understood as referring to a generalized force that includes acombination of one or more forces or torques. It should be appreciatedthat a wrench may include only forces, only torques, or a combination offorces and torques. For example, “determining an aggregate wrench on thegripper” may be understood as “determining an aggregate force and/ortorque on the gripper”. For instance, the aggregate wrench may bedetermined using at least one force sensor, torque sensor, orforce/torque sensor coupled to the gripper. In some embodiments, someparameters relating to the aggregate wrench on the gripper may bealready known, such that sensing may not be required. For example,certain properties of the gripped object (mass, inertia, etc.) may beknown before the object is gripped, and therefore may not need to bemeasured. Process 600 then proceeds to act 618 where an acceleration ofthe robotic gripper is selected based, at least in part, on the gripquality and/or the aggregate wrench. If desired, process 600 may returnto act 614 where grip quality and aggregate wrench are determined toprovide a continuous feedback loop which enables the robotic gripper tooperate at an acceleration that corresponds to a desired safety factor.

The inventors have recognized and appreciated that it may beadvantageous to increase the acceleration of the robotic gripper and/orthe robot to which the robotic gripper is attached when a grip qualityon an object is good and/or when the determined aggregate wrench issmall. For instance, when the object is light and the grip is good, therobotic gripper can be operated with more speed. By contrast, when theobject is poorly gripped by the gripper and/or the object is heavy, itmay be advantageous to operate the robotic gripper with less speed toprevent the object from falling and/or to improve safety.

In one embodiment, a method of determining grip quality between arobotic gripper and an object may include first applying a vacuum to twoor more cup assemblies of the robotic gripper in contact with theobject. After the vacuum is applied and a grip is secured, the objectmay be moved with the robotic gripper. Then, using at least one pressuresensor associated with each of the two or more cup assemblies, a gripquality between the robotic gripper and the object may be determined.The grip quality may be used to select an acceleration for the roboticgripper.

In some embodiments, an aggregate wrench exerted on the robotic gripperby the objected may be measured while the gripper moves the object. Forexample, a force sensor, torque sensor, or force/torque sensor disposedbetween the end effector and the rest of the robotic arm may be used todetermine the aggregate wrench. Of course, other methods of measuringforces and/or torques may be suitable, and the disclosure is not limitedin this regard. In some situations, the aggregate wrench exerted on therobotic gripper may be used to determine the weight of the object. Forexample, the weight of the object may be determined if the roboticgripper moves the object with constant acceleration. Informationregarding the aggregate wrench acting on the robotic gripper and/or theweight of the object may be used to select an acceleration for therobotic gripper.

In some embodiments, information regarding the aggregate wrench actingon the robotic gripper and/or the weight of the object may be used inconjunction with the determined grip quality to select an accelerationfor the robotic gripper. A comparison of the determined grip quality andthe measured aggregate wrench may help determine a ratio of thedetermined grip quality to the measured aggregate wrench. Anacceleration for a robotic gripper may be adjusted based on the ratio ofthe determined grip quality to the measured aggregate wrench. In someembodiments, the acceleration may be increased when the ratio of thedetermined grip quality to the measured aggregate wrench is above athreshold value. For example, if the ratio is determined to be greaterthan 3, the gripper may be able to accelerate the object to anacceleration of up to 3 G (where G is the acceleration due to gravity)before the grip becomes compromised. In some embodiments, theacceleration may be decreased when the ratio of the determined gripquality to the measured aggregate wrench is below a threshold value. Forexample, if a suction cup loses suction as a robotic arm moves through atrajectory, the grip quality may be reduced and the acceleration may bedecreased. In some embodiments, the acceleration may be continuouslyvaried based on the grip quality.

If a ratio of the determined grip quality to the measured aggregatewrench is determined to be too low for a desired trajectory and/oracceleration, the ratio may be increased by improving the grip quality.For example, grip quality may be improved in a vacuum-based gripper byincreasing the suction force of the cup assemblies, or by engaging morecup assemblies. Without wishing to be bound by theory, the grip qualityof a vacuum-based gripper may be based, at least in part, on thepressure differential of each cup assembly and the total contact area ofall cup assemblies engaged with the grasped object.

In some embodiments, computation and/or processing may be performedon-board the robotic gripper or the robotic arm. For example, theabove-mentioned act of determining the aggregate wrench acting on therobotic gripper may be performed by one or more processors disposed onthe robotic gripper. In embodiments in which there are multiple sensors,such as a force sensor to measure the aggregate wrench acting on thegripper, and a pressure sensor associated with each vacuum assembly,onboard computation may be used to fuse sensor data and inform acontroller that determines the trajectory and/or acceleration profile ofthe robotic arm. Furthermore, integrating computation on the roboticgripper (or other end effector) may enable a more modular robotic arm,which may have benefits related to assembly, part replacement, and easeof operation.

In some embodiments, a method of determining grip quality between arobotic gripper and an object may further include determining that cupassemblies are within a threshold distance from the object. The methodmay also include applying vacuum to the cup assemblies when it isdetermined that the cup assemblies are within the threshold distance. Insome embodiments, the threshold distance may be zero, such that vacuummay be applied when the cup assemblies are in contact with the object.In some embodiments, the threshold distance may be greater than zero,such that vacuum may be applied before the cup assemblies contact theobject. A robotic gripper may include a distance sensor, such as atime-of-flight sensor, to determine the distance between the cupassemblies and the object.

FIGS. 7A-7D illustrate schematically relationships between a contactstate of a cup assembly and a determination of whether or not toactivate that cup assembly in accordance with some embodiments. FIG. 7Ais a top schematic view of one embodiment of a gripper 700 in contactwith an object 730. The object 730 may, in some embodiments, be a box,such as a cardboard box. In some embodiments, the object 730 may includea plastic covering, such as an array of goods (e.g., cans) in acardboard tray that has been shrink-wrapped with plastic. The object mayinclude any number of defects or areas of damage 715 (e.g., creases,folds, dents, cuts, tears, etc.), or open portions 716. The gripper 700includes a plurality of cup assemblies 702, which may include bothdeactivated cup assemblies 710 (e.g., cup assemblies to which no vacuumor minimal vacuum is supplied) and activated cup assemblies 720 (e.g.,cup assemblies to which vacuum is supplied). In FIGS. 7A-7C, deactivatedcup assemblies 710 are indicated with cross hatching, whereas activatedcup assemblies 720 are indicated with open fill. It should beappreciated that while cup assemblies 702 are shown as either beingactivated or deactivated in FIGS. 7A-7C, the present disclosure is notlimited to cup assemblies that are either activated (e.g., on) ordeactivated (e.g., off). In some embodiments, the vacuum applied to cupassemblies may be adjusted continuously between any suitable number ofstates, rather than discretely between just two states (e.g., on andoff).

Deactivated cup assemblies 710 may be deactivated based on one or moreparameters. In some embodiments, a cup assembly may be deactivated ifthe sensed pressure within the cup assembly is below a threshold value.For example, a cup assembly that is not in contact with an object 730,such as cup assembly 711 which is arranged over open portion 716 in theobject, may be deactivated. Similarly, a cup assembly that is only inpartial contact with an object 730, such as cup assembly 712 which isarranged over an edge of the object, may be deactivated. A cup assemblythat is in contact with a defect or area of damage 715 of the object 730may be deactivated even if most or all of the cup assembly is in contactwith the object 730, as the defect or area of damage 715 may prohibitthe establishment of a good seal.

FIG. 7B schematically illustrates a scenario in which gripper 700 isarranged to move multiple objects (e.g., one or more of objects 730a-730 d) at the same time. In some embodiments, a cup assembly may bedeactivated even if the sensed pressure within the cup assembly is abovea threshold value, and the cup assembly is able to form a good seal withthe object. For example, cup assembly 713 of FIG. 7B may be deactivatedeven though the entire cup assembly 713 is in contact with (and makes agood seal with) an object 730 d. In some embodiments, informationcaptured by additional sensors (e.g., a camera) may be used to determinewhether or not individual cup assemblies should be deactivated. Forexample, if it is determined based on one or more images captured by acamera that only a small number of cup assemblies are in contact with agiven object, those cup assemblies may be deactivated even if the cupassemblies are able to achieve a good seal. Selectively deactivating cupassemblies even when they achieve a good seal may facilitate avoiding ascenario in which an object is dropped because the object is too heavyfor the number of cup assemblies in contact with that object.

In some embodiments, activation/deactivation of one or more cupassemblies may be controlled using active valving, in which a processoror a controller may determine whether or not to open a valve. In someembodiments, such as embodiments in which cup assembly activation isdetermined by the pressure within the cup assembly, cup assemblies mayinclude passive valving, in which the state of a valve may be determinedbased on pressure differentials, and a processor or a controller may notbe needed. It should be appreciated that some grippers may include cupassemblies with active and/or passive valving, as the disclosure is notlimited in this regard.

As depicted in FIG. 7B, a single gripper 700 may be configured tosimultaneously engage with (e.g., grip) a plurality of objects 730 a-730d. The objects 730 a-730 d may be of different shapes, sizes, ororientations, as the disclosure is not limited in this regard. Thegripper 700 may selectively activate cup assemblies 702 such that only asubset of the plurality of objects 730 a-730 d are engaged (e.g.,gripped) by the gripper 700. For example, cup assemblies in contact withthe first three objects 730 a-730 c may be activated, while cupassemblies in contact with the fourth object 730 d may be deactivated(the cup assemblies in partial contact with any object or not in contactwith any object may be deactivated). In this way, the gripper 720 maysimultaneously engage with a selected subset of the objects 730 a-730 dwith which it is in contact. That is, during operation, the gripper 700may contact a plurality of objects but only actively grip a chosensubset of those objects,

FIG. 7C depicts a gripper 700 gripping an object 730 along with acorresponding plot of the pressure within certain cup assemblies 702.FIG. 7D depicts the same graph of FIG. 7C, but with additionalannotations. As discussed above, different cup assemblies 702 may beassociated with different pressure levels, determined at least in partby the seal between the cup assembly and the object. 730. As shown inFIG. 7C, a cup assembly 720 with a good seal may be associated with ahigher pressure than a cup assembly 712 with a partial seal, which mayin turn be associated with a higher pressure than a cup assembly 711with no seal. Accordingly, cup assembly 720 may be activated when thegripper grips the object, whereas cup assemblies 711 and 712 may bedeactivated.

Referring to FIG. 7D, a determination of whether or not to activate acup assembly may be based, at least in part, on the response of each cupassembly to a diagnostic vacuum pulse. Performing a diagnostic pulse mayinclude briefly activating one or more cup assemblies, thereby supplyingvacuum to the cup assemblies. The response may include data related tothe pressure level in each cup assembly over time. The response of eachcup assembly may be analyzed in relation to a peak pressure response, agradient pressure response, or a combination thereof. The peak pressureresponse of a cup assembly may include the maximum or minimum pressurerecorded by a pressure sensor associated with the cup assembly within aparticular time range after the initiation of the pulse. For example, ifa pulse lasts 15 milliseconds, the maximum or minimum value sensed bythe pressure sensor within 50 milliseconds following the initiation ofthe pulse may be recorded as the peak pressure response. The gradientpressure response of a cup assembly may include the rate of change ofthe pressure signal within a cup assembly in response to a pulse, Insome embodiments, the gradient pressure response may be determined inunder 5 milliseconds.

FIG. 8 illustrates an example of a process 800 for determining whichindividual cup assemblies in a robotic gripper to activate in accordancewith some embodiments. The process 800 begins in act 810, where a pulseis applied to the cup assemblies. As described above, pulsing the cupassemblies may include activating the cup assemblies for a short, periodof time (e.g., 15 milliseconds) before deactivating the cup assembliesagain. Cup assemblies may be pulsed individually or in groups. In someembodiments, all cup assemblies of a robotic gripper may be pulsedsimultaneously.

The process 800 then proceeds to act 820, where a pulse response of eachcup assembly is determined. Determining the pulse response of each cupassembly may include detecting a rate of change (e.g., a slope) of themeasured pressure signal, such as at act 822, and/or detecting a peakvalue of the pressure signal, such as at act 824. In some embodiments,both the rate of change and the peak value of the pressure signal may bedetected and one or both of the rate of change and the peak value of thepressure signal may be used, at least in part, to determine whether toactivate individual cup assemblies. For example, in some embodimentsusing the rate of change of the pressure signal may be preferable, but,if the rate of change information is unavailable for one or more cupassemblies, the peak value of the pressure signal may be used.

The process 800 then proceeds to act 830, where the pulse response ofeach cup assembly is normalized. For example, the pulse response of eachcup assembly may be divided by the maximum recorded pulse response, suchthat the pulse response of each cup assembly may be associated with anormalized value ranging from 0 to 1. In the example where the pulseresponse is characterized in terms of the rate of change of the pressuresignal of each cup assembly, normalization of the pulse responses ofeach cup assembly may include dividing the rate of change of thepressure signal for each cup assembly by the maximum rate of change ofthe pressure signal recorded over all cup assemblies of the roboticgripper. In the example where the pulse response is characterized interms of the peak pressure signal of each cup assembly, normalization ofthe pulse responses of each cup assembly may include dividing the peakpressure signal for each cup assembly by the maximum peak pressuresignal recorded over all cup assemblies of the robotic gripper.

The process 800 then proceeds to act 840, where selected cup assembliesare activated. In some embodiments, only those cup assemblies with anormalized value (e.g., rate of change, peak value, or both rate ofchange and peak value) above a threshold value may be activated, such asat act 842. For example, all cup assemblies with a normalized valueabove a threshold value (e.g., 0.5, 0.95) may be automaticallyactivated. In some embodiments, the cup assemblies may be ranked basedon their normalized value. The cup assemblies may be sequentiallyactivated from the highest normalized value to the lowest normalizedvalue until the overall system level pressure drops below a thresholdvalue, at which point no additional cup assemblies are activated, suchas at act 844. In some embodiments, a combination of these approachesmay be employed. For example, all cup assemblies above a first thresholdvalue (e.g., 0.95) may be automatically activated. Any cup assembliesbelow a second threshold value (e.g., 0.30) may automatically remaindeactivated. Any cup assemblies below the first threshold value andabove the second threshold value may be sequentially activated until aparticular pressure drop is observed across the entire system of cupassemblies.

The computing devices and systems described and/or illustrated hereinbroadly represent any type or form of computing device or system capableof executing computer-readable instructions, such as those containedwithin the modules described herein. In their most basic configuration,these computing device(s) may each include at least one memory deviceand at least one physical processor.

In some examples, the term “memory device” generally refers to any typeor form of volatile or non-volatile storage device or medium capable ofstoring data and/or computer-readable instructions. In one example, amemory device may store, load, and/or maintain one or more of themodules described herein. Examples of memory devices include, withoutlimitation, Random Access Memory (RAM), Read Only Memory (ROM), flashmemory, Hard Disk Drives (HDDs), Solid-State Drives (SSDs), optical diskdrives, caches, variations or combinations of one or more of the same,or any other suitable storage memory.

In some examples, the term “physical processor” generally refers to anytype or form of hardware-implemented processing unit capable ofinterpreting and/or executing computer-readable instructions. In oneexample, a physical processor may access and/or modify one or moremodules stored in the above-described memory device. Examples ofphysical processors include, without limitation, microprocessors,microcontrollers, Central Processing Units (CPUs), Field-ProgrammableGate Arrays (FPGAs) that implement softcore processors,Application-Specific Integrated Circuits (ASICs), portions of one ormore of the same, variations or combinations of one or more of the same,or any other suitable physical processor.

Although illustrated as separate elements, the modules described and/orillustrated herein may represent portions of a single module orapplication. In addition, in certain embodiments one or more of thesemodules may represent one or more software applications or programsthat, when executed by a computing device, may cause the computingdevice to perform one or more tasks. For example, one or more of themodules described and/or illustrated herein may represent modules storedand configured to run on one or more of the computing devices or systemsdescribed and/or illustrated herein. One or more of these modules mayalso represent all or portions of one or more special-purpose computersconfigured to perform one or more tasks.

In addition, one or more of the modules described herein may transformdata, physical devices, and/or representations of physical devices fromone form to another. Additionally, or alternatively, one or more of themodules recited herein may transform a processor, volatile memory,non-volatile memory, and/or any other portion of a physical computingdevice from one form to another by executing on the computing device,storing data on the computing device, and/or otherwise interacting withthe computing device.

The above-described embodiments can be implemented in any of numerousways. For example, the embodiments may be implemented using hardware,software or a combination thereof. When implemented in software, thesoftware code can be executed on any suitable processor or collection ofprocessors, whether provided in a single computer or distributed amongmultiple computers. It should be appreciated that any component orcollection of components that perform the functions described above canbe generically considered as one or more controllers that control theabove-discussed functions. The one or more controllers can beimplemented in numerous ways, such as with dedicated hardware or withone or more processors programmed using microcode or software to performthe functions recited above.

In this respect, it should be appreciated that embodiments of a robotmay include at least one non-transitory computer-readable storage medium(e.g., a computer memory, a portable memory, a compact disk, etc.)encoded with a computer program (i.e., a plurality of instructions),which, when executed on a processor, performs one or more of theabove-discussed functions. Those functions, for example, may includecontrol of the robot and/or driving a wheel or arm of the robot. Thecomputer-readable storage medium can be transportable such that theprogram stored thereon can be loaded onto any computer resource toimplement the aspects of the present invention discussed herein. Inaddition, it should be appreciated that the reference to a computerprogram which, when executed, performs the above-discussed functions, isnot limited to an application program running on a host computer.Rather, the term computer program is used herein in a generic sense toreference any type of computer code (e.g., software or microcode) thatcan be employed to program a processor to implement the above-discussedaspects of the present invention.

Various aspects of the present invention may be used alone, incombination, or in a variety of arrangements not specifically discussedin the embodiments described in the foregoing and are therefore notlimited in their application to the details and arrangement ofcomponents set forth in the foregoing description or illustrated in thedrawings. For example, aspects described in one embodiment may becombined in any manner with aspects described in other embodiments.

Also, embodiments of the invention may be implemented as one or moremethods, of which an example has been provided. The acts performed aspart of the method(s) may be ordered in any suitable way. Accordingly,embodiments may be constructed in which acts are performed in an orderdifferent than illustrated, which may include performing some actssimultaneously, even though shown as sequential acts in illustrativeembodiments.

Use of ordinal terms such as “first,” “second,” “third,” etc., in theclaims to modify a claim element does not by itself connote anypriority, precedence, or order of one claim element over another or thetemporal order in which acts of a method are performed. Such terms areused merely as labels to distinguish one claim element having a certainname from another element having a same name (but for use of the ordinalterm).

The phraseology and terminology used herein is for the purpose ofdescription and should not be regarded as limiting. The use of“including,” “comprising,” “having,” “containing”, “involving”, andvariations thereof, is meant to encompass the items listed thereafterand additional items.

Having described several embodiments of the invention in detail, variousmodifications and improvements will readily occur to those skilled inthe art. Such modifications and improvements are intended to be withinthe spirit and scope of the invention. Accordingly, the foregoingdescription is by way of example only, and is not intended as limiting.

1-23. (canceled)
 24. A method of selectively activating cup assembliesof a robotic gripper, the method comprising: applying a vacuum pulse toeach of the cup assemblies; determining for each of the cup assemblies,while the vacuum pulse is applied to the cup assembly and using one ormore pressure sensors, a pressure measurement for the cup assembly,wherein the pressure measurement comprises a rate of change of apressure signal measured by the one or more pressure sensors and/or apeak pressure value of a pressure signal measured by the one or morepressure sensors; and selectively activating one or more of the cupassemblies based, at least in part, on the determined pressuremeasurements for the cup assemblies.
 25. The method of claim 24, furthercomprising normalizing the pressure measurements for the cup assemblies,and selectively activating the one or more cup assemblies based, atleast in part, on the normalized pressure measurements.
 26. The methodof claim 24, wherein determining the pressure measurement comprisesdetermining the rate of change of a pressure signal measured by the oneor more pressure sensors.
 27. The method of claim 24, whereindetermining the pressure measurement comprises determining the peakpressure value of the pressure signal measured by the one or morepressure sensors.
 28. The method of claim 24, wherein selectivelyactivating one or more of the cup assemblies based, at least in part, onthe determined pressure measurements includes selectively activating oneor more of the cup assemblies based, at least in part, on a pressuremeasurement threshold.
 29. The method of claim 24, wherein selectivelyactivating one or more of the cup assemblies based, at least in part, onthe determined pressure measurements includes sequentially activatingcup assemblies until a target pressure drop is detected.
 30. The methodof claim 24, wherein applying a vacuum pulse to the cup assembliesincludes simultaneously activating the cup assemblies for a fixed timeperiod.
 31. A robot, comprising: a robotic gripper including a pluralityof individually controllable cup assemblies; and a controller configuredto: apply a vacuum pulse to each of the cup assemblies; determine foreach of the cup assemblies, while the vacuum pulse is applied to the cupassembly and using one or more pressure sensors, a pressure measurementfor the cup assembly, wherein the pressure measurement comprises a rateof change of a pressure signal measured by the one or more pressuresensors and/or a peak pressure value of a pressure signal measured bythe one or more pressure sensors; and selectively activate one or moreof the cup assemblies based, at least in part, on the determinedpressure measurements for the cup assemblies.
 32. The robot of claim 31,wherein the controller is further configured to normalize the pressuremeasurements for the cup assemblies, and selectively activate the one ormore cup assemblies based, at least in part, on the normalized pressuremeasurements.
 33. The robot of claim 31, wherein determining thepressure measurement comprises determining the rate of change of apressure signal measured by the one or more pressure sensors.
 34. Therobot of claim 31, wherein determining the pressure measurementcomprises determining the peak pressure value of the pressure signalmeasured by the one or more pressure sensors.
 35. The robot of claim 31,wherein selectively activating one or more of the cup assemblies based,at least in part, on the determined pressure measurements includesselectively activating one or more of the cup assemblies based, at leastin part, on a pressure measurement threshold.
 36. The robot of claim 31,wherein selectively activating one or more of the cup assemblies based,at least in part, on the determined pressure measurements includessequentially activating cup assemblies until a target pressure drop isdetected.
 37. The robot of claim 31, wherein applying a vacuum pulse tothe cup assemblies includes simultaneously activating the cup assembliesfor a fixed time period.
 38. A non-transitory computer-readable storagemedium encoded with instructions that, when executed by at least oneprocessor perform a method of selectively activating cup assemblies of arobotic gripper, the method comprising: applying a vacuum pulse to eachof the cup assemblies; determining for each of the cup assemblies, whilethe vacuum pulse is applied to the cup assembly and using one or morepressure sensors, a pressure measurement for the cup assembly, whereinthe pressure measurement comprises a rate of change of a pressure signalmeasured by the one or more pressure sensors and/or a peak pressurevalue of a pressure signal measured by the one or more pressure sensors;and selectively activating one or more of the cup assemblies based, atleast in part, on the determined pressure measurements for the cupassemblies.
 39. The non-transitory computer-readable storage medium ofclaim 38, wherein the method further comprises normalizing the pressuremeasurements for the cup assemblies, and selectively activating the oneor more cup assemblies based, at least in part, on the normalizedpressure measurements.
 40. The non-transitory computer-readable storagemedium of claim 38, wherein determining the pressure measurementcomprises determining the rate of change of a pressure signal measuredby the one or more pressure sensors.
 41. The non-transitorycomputer-readable storage medium of claim 38, wherein determining thepressure measurement comprises determining the peak pressure value ofthe pressure signal measured by the one or more pressure sensors. 42.The non-transitory computer-readable storage medium of claim 38, whereinselectively activating one or more of the cup assemblies based, at leastin part, on the determined pressure measurements includes selectivelyactivating one or more of the cup assemblies based, at least in part, ona pressure measurement threshold.
 43. The non-transitorycomputer-readable storage medium of claim 38, wherein selectivelyactivating one or more of the cup assemblies based, at least in part, onthe determined pressure measurements includes sequentially activatingcup assemblies until a target pressure drop is detected.
 44. Thenon-transitory computer-readable storage medium of claim 38, whereinapplying a vacuum pulse to the cup assemblies includes simultaneouslyactivating the cup assemblies for a fixed time period.